package pe.gob.mintra.trabajadoreshogar.daoimpl;

import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.log4j.Logger;
import pe.gob.mintra.trabajadoreshogar.bean.DatLab;
import pe.gob.mintra.trabajadoreshogar.dao.DatLabDAO;
import pe.gob.mintra.trabajadoreshogar.factory.MyBatisConnectionFactory;

public class DatLabDAOImp implements DatLabDAO {
	
	private final static Logger logDatLabDAOImp = Logger.getLogger(DatLabDAOImp.class);
	
	private SqlSessionFactory sqlSessionFactory;

	public DatLabDAOImp() {
		sqlSessionFactory = MyBatisConnectionFactory.getSqlSessionFactory();
	}
	

	
	public void insertarDatLab(DatLab objDatLab){
		
		SqlSession session = sqlSessionFactory.openSession();

		try {
			session.insert("DatLab.insertarDatLab",objDatLab);
			
		} 
		catch(Exception ex){
			session.rollback();
			logDatLabDAOImp.error(ex.getMessage());
		}
		finally {
			session.close();
		}

	}
	
	public void actualizarDatLab(DatLab objDatLab){
		
		SqlSession session = sqlSessionFactory.openSession();

		try {
			session.update("DatLab.actualizarDatLab",objDatLab);
			
		} 
		catch(Exception ex){
			session.rollback();
			logDatLabDAOImp.error(ex.getMessage());
		}
		finally {
			session.close();
		}

	}



	@Override
	public void insertarDatLabVinEmpresa(DatLab objDatLab) {
		SqlSession session = sqlSessionFactory.openSession();

		try {
			session.insert("DatLab.insertarDatLabVinEmpresa",objDatLab);
			
		} 
		catch(Exception ex){
			session.rollback();
			logDatLabDAOImp.error(ex.getMessage());
		}
		finally {
			session.close();
		}
		
	}



	@Override
	public void actualizarDatLabVinEmpresa(DatLab objDatLab) {
		SqlSession session = sqlSessionFactory.openSession();

		try {
			session.update("DatLab.actualizarDatLabVinEmpresa",objDatLab);
			
		} 
		catch(Exception ex){
			session.rollback();
			System.out.println(ex.getMessage());
			logDatLabDAOImp.error(ex.getMessage());
		}
		finally {
			session.close();
		}
		
	}



	@Override
	public DatLab listarDatLab(DatLab objDatLab) {
		DatLab datlab = null;
		SqlSession session = sqlSessionFactory.openSession();
		
		try{
			datlab = (DatLab) session.selectOne("DatLab.listarDatLab", objDatLab);
			
		}catch(Exception ex){
			logDatLabDAOImp.error(ex.getMessage());
		}finally{
			session.close();
		}
		

		return datlab;
	}

}
